wY = icc_read (s15f16, offset + 8 + 4);
wZ = icc_read (s15f16, offset + 8 + 4 * 2);
- babl_free (state);
+ if (trc_red == babl_trc ("sRGB") &&
+ trc_green == babl_trc ("sRGB") &&
+ trc_blue == babl_trc ("sRGB") &&
+ fabs(rx - 0.436042) < 0.001 &&
+ fabs(ry - 0.222492) < 0.001 &&
+ fabs(rz - 0.013916) < 0.001 &&
+ fabs(gx - 0.385122) < 0.001 &&
+ fabs(gy - 0.716915) < 0.001 &&
+ fabs(gz - 0.097063) < 0.001 &&
+ fabs(bx - 0.143053) < 0.001 &&
+ fabs(by - 0.060609) < 0.001 &&
+ fabs(bz - 0.713939) < 0.001)
+ {
+ babl_free (state);
+ return babl_space ("sRGB");
+ }
{
Babl *ret = (void*)babl_space_from_rgbxyz_matrix (NULL,
trc_red, trc_green, trc_blue);
ret->space.description = descr;
ret->space.copyright = copyright;
+
+ babl_free (state);
return ret;
}
}